{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Gaussian Processes (Julia)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This example demonstrates [GaussianProcesses.jl](https://github.com/STOR-i/GaussianProcesses.jl). We fit the model, tune its hyperparameters with GridSearchCV, and compute the cross-validation score."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "10-element Array{Float64,1}:\n",
       " -0.152869\n",
       "  0.294195\n",
       "  0.136808\n",
       "  0.959604\n",
       " -0.236843\n",
       " -0.209638\n",
       "  0.977491\n",
       "  0.816858\n",
       " -0.246879\n",
       " -0.547982"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "using ScikitLearn\n",
    "using ScikitLearn.GridSearch\n",
    "using PyPlot\n",
    "using GaussianProcesses: GPE, MeanZero, SE\n",
    "\n",
    "srand(42)\n",
    "# Training data\n",
    "n = 10\n",
    "x = 2π * rand(n, 1)\n",
    "y = sin.(x[:, 1]) + 0.05*randn(n)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Fit a GP with hand-specified parameters:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Select mean and covariance function\n",
    "mZero = MeanZero()                   # Zero mean function\n",
    "kern = SE(0.0,0.0)                   # Squared exponential kernel with parameters\n",
    "                                     # log(ℓ) = 0.0, log(σ) = 0.0\n",
    "gp = fit!(GPE(m=mZero,k=kern, logNoise=-1.0), x,y);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Use cross-validation to find the optimal noise level and (log) signal standard deviation σ"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(get_params(best_gp))[:logNoise] = 2.6\n",
      "(get_params(best_gp))[:k_lσ] = 4.8\n"
     ]
    }
   ],
   "source": [
    "gp_cv = fit!(GridSearchCV(GPE(m=mZero,k=SE(0.0,0.0)), Dict(:logNoise=>collect(-10:0.3:10), :k_lσ=>collect(0:0.1:5))), x, y);\n",
    "best_gp = gp_cv.best_estimator_;\n",
    "@show get_params(best_gp)[:logNoise] get_params(best_gp)[:k_lσ]\n",
    "nothing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "PyPlot.Figure(PyObject <Figure size 640x480 with 1 Axes>)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "xx = -5:0.1:10\n",
    "plot(xx, predict(gp, reshape(collect(xx), length(xx), 1)), label=\"hand-specified\")\n",
    "plot(xx, predict(best_gp, reshape(collect(xx), length(xx), 1)), label=\"gridsearch-optimized\")\n",
    "plot(x, y, \"bo\")\n",
    "legend();"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "`GridSearchCV` can tune all kernel and mean parameters:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Dict{Symbol,Float64} with 3 entries:\n",
       "  :k_lσ     => 0.0\n",
       "  :logNoise => -1.0\n",
       "  :k_ll     => 0.0"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "get_params(gp)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Example 2 - cross-validation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "using ScikitLearn, PyPlot\n",
    "using ScikitLearn.CrossValidation: cross_val_score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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tm2bo9stLCyMZcuWZdhvy5YtGZ7Xq1ePvXv3UqVKlYJ6G5IDDQ4XERHJB1arlf3797N///5rbjhbsmRJBg4cyEsvvcSqVavYt28f/fv358qVKzz11FMADBgwgCNHjjB8+HAOHDjAF198waxZszIc5+WXXyYyMpJBgwYRFRXFoUOHWLFiBc8//3xhvc1bnoKTiIhIPvH29sbb2zvT195991169OhB3759qVevHocPH+a7776jdOnSQFpX2+LFi1m5ciW1a9dmypQpvPPOOxmOUatWLTZs2MChQ4do0aIFdevW5fXXXycoKKjA35ukMczrmXd5C0lISMDHx4f4+Pgs/2cQEZHrl5iYSHR0NKGhoZoVJnmS3c9OQX1/64qTiIiISC4pOImIiIjkkoKTiIiISC4pOImIiIjkkoKTiIiISC4pOImIiIjkkoKTiIiISC4pOImIiIjkkoKTiIiISC4pOImIiNwkbDYbTzzxBKVLl8YwDH777Ten1fLbb785vYaCoOAkIiJyHQzDyPbRr1+/Qq9pxYoVRERE8N133xETE8Mdd9xRKOft1asXvXr1yrDtjjvuKNQaCouLswsQEREpjmJiYhz/HhERwYgRIzhw4IBjW4kSJTLdLyUlBVdX1wKp6ciRIwQHB9OwYcMCOX5eWK1WAgMDnV1GvtMVJxERkesQGBjoePj4+GAYxjXb0rurlixZQosWLXB3d2fRokW88sorNG7cOMPx3n33XapXr55h29SpU6lWrRoeHh7UqFGD6dOnZ1lPr169eOmllzh48CCGYTiOFRgYyJQpUzK0rV69Ou+++y6QdqNcwzCYPXs2nTt3xtPTk2rVqvHtt99m2GfXrl20b98eLy8vvL29adWqFcePH+eVV14hIiKCiIgIx9W2LVu2ZNpVt3btWurXr4+7uzvly5fn9ddfx2azOV5v3LgxL774IsOGDcPX15fy5cszevToPPxXKXi64iQiIkWPaULKFeec29UTDCNfD/nyyy/zwQcfUKtWLUqUKMGuXbty3GfChAm8//77TJgwgVq1arFt2zb69++Pt7c3PXv2vKb91KlTqVKlChEREfz444+4uOTtK37kyJG8//77jBs3jg8++IDevXtz7NgxvL29OXr0KC1btqRDhw6sX7+ekiVL8tNPP5GSksJrr73mCEfpAa1MmTIcOXIkw/GPHj1K586d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GT16dPExj8cDgK+vL7t27aJ9+/bVW+l6rCq/G9HR0fj5+ZW4L2fnzp1JTU0lLy8Pf3//aq1zfVWVtnjqqacYP34899xzDwDdunXj9OnT3HvvvTz55JP4+DToGTM1qrzrt6+vL02bNrX9Og26xfz9/enVqxfLli0rcXzZsmUMGDCgzHP69+9fqvzSpUvLLS/2VKUtAF588UX++Mc/8uWXX9K7d+/qrmaDUNm2iIuLY+vWrSQkJBQ/brzxRoYOHUpCQgIxMTE1VfV6qSq/GwMHDmTv3r3FARZg9+7dREdHKzRdgKq0RXZ2dqlw5HQ6MdbirGqrq5RW3vW7d+/e+Pn52X+hSk0lr4eKlpbOnz/f7Nixw0yZMsU0atTIJCYmGmOMGT9+fInVEmvXrjVOp9M8//zzZufOneb555/XdgQXSWXbYs6cOcbf398sWrTIHDlypPiRmZnprY9Qb1S2LX5Jq+oursq2R1JSkgkODjaTJ082u3btMp999plp3ry5efbZZ731EeqNyrbF9OnTTUhIiHn//ffN/v37zdKlS0379u3N2LFjvfUR6o3MzEyzZcsWs2XLFgOYl19+2WzZsqV4a4jHH3/cjB8/vrh80XYEjzzyiNmxY4eZP3++tiOoqtdee820adPG+Pv7m549e5qVK1cWPzd48GBz1113lSj/wQcfmE6dOhk/Pz8TFxdnFi9eXMM1rr8q0xZt2rQxQKnH9OnTa77i9VBlfy/OpeB08VW2PdatW2f69u1rXC6XadeunZk1a5YpKCio4VrXT5Vpi/z8fDNjxgzTvn17ExAQYGJiYsyDDz5oTp486YWa1y/ffPNNmdeAop//XXfdZQYPHlzinBUrVpgePXoYf39/Exsba+bOnVvp93UYo75CERERETsa9BwnERERkcpQcBIRERGxScFJRERExCYFJxERERGbFJxEREREbFJwEhEREbFJwUlERETEJgUnEREREZsUnERERERsUnASERERsUnBSUQalPT0dKKiopg9e3bxse+++w5/f3+WLl3qxZqJSF2ge9WJSIMTHx/PTTfdxLp164iLi6NHjx6MGjWKV1991dtVE5FaTsFJRBqkSZMmsXz5cq644gp++OEHvv/+ewICArxdLRGp5RScRKRBysnJoWvXrhw6dIiNGzfSvXt3b1dJROoAzXESkQZp//79pKSk4PF4OHjwoLerIyJ1hHqcRKTBycvLo0+fPlx++eXExcXx8ssvs3XrViIjI71dNRGp5RScRKTB+cMf/sCiRYv44YcfCA4OZujQoYSEhPDZZ595u2oiUstpqE5EGpQVK1bw6quvsmDBAho3boyPjw8LFixgzZo1zJ0719vVE5FaTj1OIiIiIjapx0lERETEJgUnEREREZsUnERERERsUnASERERsUnBSURERMQmBScRERERmxScRERERGxScBIRERGxScFJRERExCYFJxERERGbFJxEREREbFJwEhEREbHp/wOFnT9zrZe9hgAAAABJRU5ErkJggg==",
      "text/plain": [
       "PyPlot.Figure(PyObject <Figure size 640x480 with 1 Axes>)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "srand(2)\n",
    "\n",
    "n_samples = 30\n",
    "degrees = [1, 4, 15]\n",
    "\n",
    "true_fun(X) = cos.(1.5 * pi * X)\n",
    "X = rand(n_samples)\n",
    "y = true_fun(X) + randn(n_samples) * 0.1\n",
    "\n",
    "gp = fit!(GPE(logNoise=-10.0), hcat(X), y)\n",
    "\n",
    "X_test = linspace(0, 1, 100)\n",
    "plot(X_test, predict(gp, hcat(X_test)), label=\"Model\")\n",
    "plot(X_test, true_fun(X_test), label=\"True function\")\n",
    "scatter(X, y, label=\"Samples\")\n",
    "xlabel(\"x\")\n",
    "ylabel(\"y\")\n",
    "xlim((0, 1))\n",
    "ylim((-2, +2))\n",
    "legend(loc=\"best\");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Cross-validation score:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-0.012207787040813127"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mean(cross_val_score(gp, hcat(X), y, cv=10))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Julia 0.6.0 (Programa)",
   "language": "julia",
   "name": "julia-0.6-programa"
  },
  "language_info": {
   "file_extension": ".jl",
   "mimetype": "application/julia",
   "name": "julia",
   "version": "0.6.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
